import unittest

from psychsim.pwl import *
from psychsim.action import Action,ActionSet
from psychsim.world import World,stateKey
from psychsim.agent import Agent
from psychsim.reward import *

'''
This file serves as a template format for unit test cases.
'''

class TestCase(unittest.TestCase):

    def setUp(self):
        #setup world, agent, and basics
        return 0
        
    def addStates(self):
        #define states
        return 0
                   
    def addTermination(self):
        #terminate 
        return 0
        
    def addActions(self):
        #add actions and appropriate dynamics
        return 0
        
    def setModelAndRewards(self):
        #set models, rewards, and beliefs
        return 0
        
    def testSetup(self):
        #test scenario construction methods
        self.addStates()
        self.addTermination()
        self.addActions()
        self.setModelAndRewards()

    def testRun(self):
        #set up the scenario
        self.testSetup()
        #test running the scenario
        

if __name__ == "__main__":
    suite = unittest.TestSuite()
    for method in dir(TestCase):
       if method.startswith("test"):
          suite.addTest(TestCase(method))
    unittest.TextTestRunner().run(suite)
            